package com.jewaton.authmanage.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.jewaton.authmanage.pojo.UserInfo;
import com.jewaton.authmanage.tools.Page;

/**
 * 用户操作映射接口
 * @author magiczeng
 *
 */
public interface UserInfoMapper {
	
	/**
	 * 通过用户名查找用户
	 * @param username 用户名
	 * @return
	 */
	public UserInfo findByUserName(String username);
	
	/**
	 * 通过用户ID查找用户
	 * @param id 用户ID
	 * @return
	 */
	public UserInfo findById(Long id);
	
	/**
	 * 查询用户列表
	 * @param page 分页参数，不能为空
	 * @param user 页面查询用户信息类
	 * @return
	 */
	public List<UserInfo> findUsersOfPage(@Param(value="page") Page page, @Param(value="user") UserInfo user);
	
	/**
	 * 新增用户信息
	 * @param userInfo
	 */
	public void insertUserInfo(UserInfo userInfo);
	
	/**
	 * 修改用户信息
	 * @param userInfo
	 */
	public void updateUserInfo(UserInfo userInfo);
	
	/**
	 * 修改用户密码
	 * @param userInfo
	 */
	public void updateUserPswd(UserInfo userInfo);
	
	/**
	 * 通过角色ID查找用户
	 * @param roleId 角色ID
	 * @return
	 */
	public List<UserInfo> findUsersByRoleId(Long roleId);
	
	/**
	 * 通过资源ID查找用户
	 * @param resourceId 资源ID
	 * @return
	 */
	public List<UserInfo> findUsersByResourceId(Long resourceId);
	
}
